package com.bt.lms.service;

import com.bt.lms.entity.RegStuInfo;
import com.bt.lms.entity.RegStuMaterial;
import com.bt.lms.bo.PageConditionQueryApplyStudent;
import com.bt.lms.entity.page.Page;

import java.sql.SQLException;


/**
 * 报名学员模块
 * @author 朱传博
 */
public interface RegStuInfoService {

    /**
     * 分页条件查询
     * @param page   分页条件模型：
     *                    每一条页数：
     *                    页码：

     * @return  分页模型：
     *           每页多少条数据
     *           总页数
     *           页码
     *           数据
     */
    public Page<RegStuInfo> pagingConditionQuery(Page<PageConditionQueryApplyStudent> page) throws SQLException;


    /**
     * 新增报名学员功能
     * @param regStuInfo  学员报名信息
     *                            报名材料信息
     * @return 是否成功
     */
    public boolean add(RegStuInfo regStuInfo) throws Exception;




    /**
     * 编辑报名学员信息功能
     * @param  regStuInfo 报名学员信息
     *                             报名材料信息
     * @param applyInfoID  要编辑的报名学员 唯一标识ID
     * @return 是否成功
     */
    boolean edit(Long applyInfoID, RegStuInfo regStuInfo) throws ClassNotFoundException, SQLException;

    /**
     * 删除报名学员信息功能
     * @param applyInfoID 报名学员的ID
     * @return 是否成功
     */
    public boolean delete(Long applyInfoID) throws SQLException, ClassNotFoundException;



    /**
     * 录取学员功能
     * @param applyInfoID  要录取报名学员的的唯一标识 ID
     * @return  是否成功
     */
    public boolean enroll(Long applyInfoID);



    /**
     * 查看提交资料信息
     * @param applyInfoID 学员信息的唯一标识 ID
     * @return 学员的提交资料
     */
    public RegStuMaterial queryMaterial(Long applyInfoID) throws SQLException, ClassNotFoundException;




    /**
     * 查看详情功能
     * @param applyInfoID 学员详细信息，需要知道学员的唯一标识 ID
     * @return  报名学员信息
     */
    public RegStuInfo queryDetail(Long applyInfoID) throws SQLException, ClassNotFoundException;
}
